{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "e7c2e408",
   "metadata": {},
   "source": [
    "# python期末项目\n",
    "## 一、项目名称\n",
    "### 1. 项目名称：简易搜索页面\n",
    "###  2. 价值主张宣言\n",
    "* 该项目主要以帮助用户搜索姓名、元音字母的搜索以及关于游戏英雄的购买项目\n",
    "## 二、问题表述\n",
    "### 1. 总体表述\n",
    "* 该项目主要以搜索功能为主，针对学生查询字母、查询姓名，查看课表。当下许多学习软件仍然无法提供便捷的查询元音字母功能，所以该引擎为用户提供了方便的查询元音字母以及元音字母出现的次数，这样用户可以随时随地地打开进行查询，为学习上提供了帮助。此外还提供了姓名全称的应用，用户输入姓名后即可出现用户姓名全称，为python，flask初学者提供学习的参考。本项目利用flask框架基于python进行的web网站开发，再以用户能看得懂的html网页的形式呈现。体现了服务端和客户端间的交互性\n",
    "## 三、解决方案表述\n",
    "### 1. 项目整体规划\n",
    "* 初步规划：首先明确项目的内容和需要解决的问题。\n",
    "* 中期规划：利用本课程所学的python知识和自己已有的html和css知识，使用Flask进行搭建起一个Web服务器端，其中css样式我参考了Boostrap中的example样式，并对其进行了改动。同时这是实现项目的最关键的一步。\n",
    "* 后期规划：进一步完善项目，改进css样式，添加了背景图片使其看起来更美观。并进行用户调研，找到了同专业的同学对其进行访谈，目的是以用户的角度得到关于产品的改进意见。\n",
    "### 2. 用到的python基础知识点\n",
    "|python知识点|用处和功能|\n",
    "|:----------|:--------------------|\n",
    "|Flask|搭建网站框架|\n",
    "|html、css|完成网页的实现和美化网页|\n",
    "|import语句|调用标准库和函数|\n",
    "|input内置函数|输入框输入数据|\n",
    "|print内置函数|用于检查|\n",
    "|if、for基础语法|用于登录时检验是否正确|\n",
    "|def语句|自定义函数，定制函数|\n",
    "|单引号、双引号|用来包围字符串|\n",
    "|jupyter notebook|编译器的使用，支持Markdowm语法可用来写笔记|\n",
    "|pycharm|编译器的使用，用于大型的python项目|\n",
    "|return语句|返回值、调用|\n",
    "|in/not in操作符|在指定的序列中找到值返回ture|\n",
    "|+操作符|做算法运算|\n",
    "\n",
    "## 四、核心功能\n",
    "* 名字全称应用\n",
    "* 元音字母cip2统计\n",
    "* 课程表\n",
    "\n",
    "### 编程功能的基本描述\n",
    "#### 1. Flask运用\n",
    "* 使用flask搭建网站框架，上手比较快且方便，需要了解flask的每一步的应用，有python的基础知识的基础上完成网站框架搭建。（学习成本：30天）**使用度较高**\n",
    "```\n",
    "app = Flask(__name__)\n",
    "@app.route('/index',methods=['GET','POST'])\n",
    "def index():\n",
    "    return render_template('index.html') #html\n",
    "```\n",
    "#### 2. HTML网页编写和CSS样式\n",
    "* Html主要用于制作网页的编写，将用户名称输入，元音字母输入，菜单呈现和跳转页面都需要到静态网页的编写。CSS样式是将网页更加美化，提升用户使用感。（学习成本：四个月）**难度较高**\n",
    "```\n",
    "<div class=\"cover-container d-flex w-100 h-100 p-3 mx-auto flex-column\">\n",
    "  <header class=\"mb-auto\">\n",
    "    <div>\n",
    "      <h3 class=\"float-md-start mb-0\">首页</h3>\n",
    "      <nav class=\"nav nav-masthead justify-content-center float-md-end\">\n",
    "        <a class=\"nav-link active\" aria-current=\"page\" href=\"#\">Home</a>\n",
    "\n",
    "      </nav>\n",
    "    </div>\n",
    "```\n",
    "#### 3. Input内置函数\n",
    "* 下图是input的官方文档给出的解释，input用于用户输入,且input会从标准库里读取一个string（即字符串），在本项目中，我大量地使用到了input函数，用于用户登录和输入名字、元音字母、余额等。（学习成本：2天）**难度：较易**\n",
    "4. Bootstrap网站样式模板\n",
    "* Bootstrap为简易地网站提供了大量的免费模板样式，使网站看起来更美观，有利于用户使用体验感的提升。在基本样式的基础上，我们还可以根据网站的需求更改。\n",
    "5. 自定义模块的使用（def）\n",
    "* 在元音字母查询项目中，使用到了def自定义模块的使用，将元音字母和词频字典定义在reserch4letters函数中。\n",
    "```\n",
    "from reserch import reserch4letters\n",
    "```\n",
    "#### 6. for循环语句\n",
    "* 在元音字母查询项目中，自定义函数里使用了for循环语句，使其实现查询元音字母出现的次数及初始化stedfault的功能。\n",
    "```\n",
    "py_found = {}\n",
    "for i in py_word:\n",
    "    if i in py_vowels:\n",
    "        # 初始化 setdefault\n",
    "        py_found.setdefault(i, 0)\n",
    "        py_found[i] += 1\n",
    "return py_found\n",
    "```\n",
    "## 五、学习/实践心得总结及感谢\n",
    "* 在刚开始接触python时，我是既害怕又兴奋的，在学习的过程中我不断吸收、提炼知识，在许智超老师耐心细心地教导下，我从一个什么都不懂的python小白变成了略知一二但还只是停留在基础的python初学者。在本次期末项目里，我体会到了前期对html和css的学习对我的帮助甚远，这次项目不仅仅是对python的知识的巩固，是对前期的知识的回顾和运用，更是作为一个产品设计方向的网新人对web服务端的了解。\n",
    "* “编程思维”是“分析问题——找到问题的解决方法”的能力，并不是编写程序的高超技巧，而是一种高效解决问题的思维方式。编程思维需要我们大量的实践得出的结果，所以我还会继续努力和接受挑战。\n",
    "* **以下链接为本次python项目所参考的内容，对此表示感谢~**\n",
    "* [bootstrap](https://getbootstrap.com/)-感谢对本项目样式的提供\n",
    "* [flask中添加图片](https://www.cnblogs.com/kaibindirver/p/12856585.html)-感谢解决在网站中添加图片的指导\n",
    "* [什么是编程思维](https://zhuanlan.zhihu.com/p/141406302)-编程思维\n",
    "* [python官方文档](https://docs.python.org/)-解决代码模糊的问题\n",
    "* [智超博客园](https://www.cnblogs.com/xuzhichao/)-感谢老师博客对python学习知识的查看\n",
    "* [Python Flask Web 框架入门](https://blog.csdn.net/sinat_38682860/article/details/82354342?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161097732616780262571570%252522%25252C%252522scm%252522%25253A%25252220140713.130102334..%252522%25257D&request_id=161097732616780262571570&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-4-82354342.first_rank_v2_pc_rank_v29&utm_term=python%20flask)\n",
    "* [CSS 颜色代码大全](https://blog.csdn.net/qq_42152029/article/details/81984596)\n",
    "* [菜鸟教程CSS](https://www.runoob.com/css/css-tutorial.html)\n",
    "* [python 错误　SyntaxError: invalid character in identifier](https://blog.csdn.net/justdoitjs/article/details/78988225)\n",
    "* [问题TypeError: __init__() takes 1 positional argument but 2 were given解决方案](https://www.cnblogs.com/lxc1997ye/p/11665439.html)\n",
    "* [php中文网](https://www.php.cn/)\n",
    "* [b站Python爬虫编程基础5天速成（2021全新合集）Python入门+数据分析](https://www.bilibili.com/video/BV12E411A7ZQ?t=1040&p=37)\n",
    "* [Html5的小知识点](https://blog.csdn.net/qq_42408149/article/details/82454835)\n",
    "* [Python 库引用提示：name ‘json‘ is not defined. 问题解决办法](https://blog.csdn.net/qq_38161040/article/details/91410095)\n",
    "* [processon](https://www.processon.com/)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "da957a71",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
